/**
 * arr.filter(function(item,index,array)=>{
 *  return item > 22;
 * },obj)
 * 通过传入函数执行后return的真假来操作数组
 */


Array.prototype.myFilter = function(fn) {
    var _arr = this;
    var _len = _arr.length;
    var _arg = arguments[1] || window;
    var resArr = [];
    //有可能数组中保存的是对象
    var _item;
    for (var i = 0; i < _len; i++) {
        _item = deepClone(_arr[i]);
        var result = fn.apply(_arg, [_item, i, _arr]);
        result ? resArr.push(_arr[i]) : '';
    }
    return resArr;
}

// var arr = [1, 2, 3];
// var resArr = arr.myFilter(function(item, index, array) {
//     return item > 1;
// })
// console.log(resArr);